การติดตั้งแอปพลิเคชันลง Server Amazon Linux 2 ผ่าน User data
ผมป๊อปนะครับ ครั้งนี้ผมจะมาแนะนำการติดตั้งแอปพลิเคชันลง Server Amazon Linux 2 ผ่าน User data ในระหว่างที่ทำการสร้าง EC2 Instance
การสร้าง Key Pairs
ค้นหา?︎ EC2
» เลือกEC2
คลิกKey Pairs
คลิกCreate key pair
ใส่ชื่อที่ต้องการในช่อง Name เช่นwindows-tinnakorn
» คลิกCreate key pair
หลังจากสร้าง Key Pair เสร็จแล้ว ไฟล์.ppk
จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และชื่อไฟล์จะเปลี่ยนไปตามที่เราได้ตั้งชื่อไว้โดยอัตโนมัติ
การสร้าง EC2 Instance (Amazon Linux 2)
ค้นหา?︎ EC2
» เลือกEC2
คลิกInstance
คลิกLaunch instances
Step 1: Choose an Amazon Machine Image (AMI) คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบล็อกนี้จะใช้ Amazon Linux 2 AMI (HVM) ในการติดตั้ง
» Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type คลิกSelect
Step 2: Choose an Instance Type คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม
» เลือก ■ Family => t3a
| Type => t3a.nano
| vCPUs => 2
| Memory => 0.5
(สามารถเลือกใช้งานได้ตามความต้องการ)
» คลิกNext: Configure Instance Details
Step 3: Configure Instance Details
» เลื่อนลงมาด้านล่างสุด แล้วตั้งค่าตามด้านล่างนี้
» ดูที่หัวข้อ User data แล้วใส่คำสั่งตามนี้
#!/bin/bash yum update -y amazon-linux-extras install -y php8.0 yum install -y httpd systemctl start httpd systemctl enable httpd
» คลิกNext: Add Storage
Step 4: Add Storage คือ ในส่วนของ Size (GiB) เราสามารถเพิ่ม Storage ได้ โดยค่าเริ่มต้นจะเป็น 8GB
» คลิกNext: Add Tags
Step 5: Add Tags » คลิกAdd Tage
» Key:Name
| Value:tinnakorn-userdata
(ใส่ชื่ออะไรก็ได้)
» คลิกNext: Configure Security Group
Step 6: Configure Security Group คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ SSH จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ SSH จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น และในส่วนของ HTTP จะใช้ในการแสดงผลหน้าเว็บไซต์นั่นเอง
① เปลี่ยนชื่อ Security group name กับ Description เป็นชื่ออะไรก็ได้ เช่นtinnakorn-userdata
② เปลี่ยน Type SSH ให้เป็น Source:My IP
③ คลิกปุ่มAdd Rule
④ เลือก Type ให้เป็นHTTP
⑤ เปลี่ยน Type HTTP ให้เป็น Source:Anywhere
⑥ คลิกReview and Launch
Step 7: Review Instance Launch » คลิกLaunch
ในส่วนของ POPUP ให้ทำตามขั้นตอนด้านล่าง
» Select a key pair:tinnakorn-userdata | RSA
(ให้เลือก key pair ที่สร้างไว้ตอนแรก key pair)
» คลิก ☑ Checkbox
» คลิกLaunch Instances
ถ้ามีข้อความแจ้งเตือนสีเขียวเหมือนรูปภาพด้านล่างนี้ เท่ากับว่าการสร้าง Instance เสร็จสิ้น จากนั้นให้คลิกView Instances
หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น? Initializing
คือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง
เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น☑ 2/2 checks passed
การเชื่อมต่อ EC2 ด้วย PuTTY
คลิกที่ ID Instance
Copy IP Instance โดยคลิกที่❐
Public IPv4 address
ซึ่ง IP Instance นี้ จะนำไปใช้ในโปรแกรม PuTTy เพื่อทำการเชื่อมต่อกับ Server Linux
เปิดโปรแกรม PuTTy ขึ้นมาก็จะมีลักษณะตามรูปภาพด้านล่าง
ขั้นตอนต่อไปจะเป็นการตั้งค่า PuTTy เพื่อเชื่อมต่อกับ Server Linux เรามาเริ่มตั้งค่าในหัวข้อถัดไปได้เลย
ในส่วนของ Session ให้ตั้งค่าตามนี้
① คลิกSession
② ใส่ IP Instance ที่คัดลอกมาจาก Instance ลงใน Host Name
③ Saved Sessions:tinnakorn-userdata
(ใส่ชื่ออะไรก็ได้)
ในส่วนของ Connection ให้ตั้งค่าตามนี้
① คลิกConnection
②60
ในส่วนของ Data ให้ตั้งค่าตามนี้
① คลิกData
② Auto-login username:ec2-user
ในส่วนของ Auth ให้ตั้งค่าตามนี้
① คลิก+
SSH
② คลิกAuth
③ คลิกBrowse...
① ไฟล์ที่ถูกดาวน์โหลดมาโดยอัตโนมัติ ค่าเริ่มต้นจะเป็น C:\Users\your_computer_name\Downloads\tinnakorn-userdata.ppk
② Browse ไฟล์ที่ได้จากการสร้าง Key Pair มาใช้งาน เช่นtinnakorn-userdata.ppk
③ คลิกOpen
การตั้งค่าของAuth
เสร็จสิ้น
กลับมาที่Sessionและตั้งค่าตามรูปภาพ
① คลิกSession
② คลิกSave
(เป็นการบันทึกข้อมูลที่ได้ตั้งค่าไว้)
③ คลิกOpen
คลิกAccept
เมื่อเชื่อมต่อเสร็จแล้วจะได้หน้าตาแบบนี้
การตรวจสอบข้อมูลใน Server Amazon Linux 2
ก่อนดำเนินการในขั้นตอน ต้องทำการเปลี่ยน ec2-user ให้เป็น root ทุกครั้ง เพื่อที่จะสามารถจัดการระบบใน Server Amazon Linux 2 ได้
เรียกใช้คำสั่งนี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root
sudo su -
เรียกใช้คำสั่งนี้เพื่อตรวจสอบสถานะการติดตั้งคำสั่งต่างๆ ที่ได้ใส่เข้าไปใน User data ของ Instance
less /var/log/cloud-init-output.log
เมื่อคำสั่งใน User data ทั้งหมดถูกติดตั้งเสร็จเรียบร้อยแล้ว จะได้หน้าตาแบบนี้
ตรวจสอบข้อมูลที่ถูกติดตั้งลงไป เช่น การติดตั้ง PHP8.0 สามารถตรวจสอบ version php ได้ด้วยคำสั่งนี้
แต่อาจจะต้องรอสักครู่เพื่อให้การติดตั้ง PHP8.0 เสร็จสิ้น
php -v
กลับมาที่หน้า EC2 Instance แล้ว Copy Public IPv4 address อีกครั้ง
จากนั้นนำ Public IPv4 address ของ Instance มาเปิดในหน้าเว็บเบราว์เซอร์ที่เรากำลังใช้งาน
จะเห็นว่าการติดตั้ง PHP8.0 เสร็จสิ้นและสามารถใช้งานได้
สรุป
การติดตั้งแอปพลิเคชันลงใน Server Amazon Linux 2 สามารถทำได้หลายวิธี โดยการสาธิตในบทนี้เป็นการติดตั้งแอปพลิเคชันโดยวางคำสั่งใน User data ระหว่างการสร้าง Instance และเมื่อ Instance ถูกสร้างขึ้นแล้ว คำสั่งการติดตั้งแอปพลิเคชันต่างๆ ก็จะถูกรันใน Server Amazon Linux 2 โดยอัตโนมัติ วิธีนี้เป็นวิธีที่อำนวยความสะดวกมากๆ เพราะเราไม่ต้องเข้าไปยัง Server Amazon Linux 2 ผ่าน PuTTy เพื่อติดตั้งแอปพลิเคชันด้วยตัวเอง จึงทำให้การใช้งาน AWS นั้นมีความง่าย สะดวก รวดเร็ว และมีประสิทธิภาพมากยิ่งขึ้น